/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.taobao.ibatiside.model.configv3.impl;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.EcorePackage;

import org.eclipse.emf.ecore.impl.EPackageImpl;

import org.eclipse.emf.ecore.xml.namespace.XMLNamespacePackage;

import org.eclipse.emf.ecore.xml.type.XMLTypePackage;

import org.taobao.ibatiside.model.configv3.ConfigurationType;
import org.taobao.ibatiside.model.configv3.Configv3Factory;
import org.taobao.ibatiside.model.configv3.Configv3Package;
import org.taobao.ibatiside.model.configv3.DataSourceType;
import org.taobao.ibatiside.model.configv3.DatabaseIdProviderType;
import org.taobao.ibatiside.model.configv3.DocumentRoot;
import org.taobao.ibatiside.model.configv3.EnvironmentType;
import org.taobao.ibatiside.model.configv3.EnvironmentsType;
import org.taobao.ibatiside.model.configv3.MapperType;
import org.taobao.ibatiside.model.configv3.MappersType;
import org.taobao.ibatiside.model.configv3.ObjectFactoryType;
import org.taobao.ibatiside.model.configv3.ObjectWrapperFactoryType;
import org.taobao.ibatiside.model.configv3.PackageType;
import org.taobao.ibatiside.model.configv3.PluginType;
import org.taobao.ibatiside.model.configv3.PluginsType;
import org.taobao.ibatiside.model.configv3.PropertiesType;
import org.taobao.ibatiside.model.configv3.PropertyType;
import org.taobao.ibatiside.model.configv3.SettingType;
import org.taobao.ibatiside.model.configv3.SettingsType;
import org.taobao.ibatiside.model.configv3.TransactionManagerType;
import org.taobao.ibatiside.model.configv3.TypeAliasType;
import org.taobao.ibatiside.model.configv3.TypeAliasesType;
import org.taobao.ibatiside.model.configv3.TypeHandlerType;
import org.taobao.ibatiside.model.configv3.TypeHandlersType;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Package</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class Configv3PackageImpl extends EPackageImpl implements Configv3Package {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass configurationTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass databaseIdProviderTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass dataSourceTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass documentRootEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass environmentsTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass environmentTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass mappersTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass mapperTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass objectFactoryTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass objectWrapperFactoryTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass packageTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass pluginsTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass pluginTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass propertiesTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass propertyTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass settingsTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass settingTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass transactionManagerTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass typeAliasesTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass typeAliasTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass typeHandlersTypeEClass = null;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private EClass typeHandlerTypeEClass = null;

	/**
	 * Creates an instance of the model <b>Package</b>, registered with
	 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
	 * package URI value.
	 * <p>Note: the correct way to create the package is via the static
	 * factory method {@link #init init()}, which also performs
	 * initialization of the package, or returns the registered package,
	 * if one already exists.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.eclipse.emf.ecore.EPackage.Registry
	 * @see org.taobao.ibatiside.model.configv3.Configv3Package#eNS_URI
	 * @see #init()
	 * @generated
	 */
	private Configv3PackageImpl() {
		super(eNS_URI, Configv3Factory.eINSTANCE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static boolean isInited = false;

	/**
	 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
	 * 
	 * <p>This method is used to initialize {@link Configv3Package#eINSTANCE} when that field is accessed.
	 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #eNS_URI
	 * @see #createPackageContents()
	 * @see #initializePackageContents()
	 * @generated
	 */
	public static Configv3Package init() {
		if (isInited) return (Configv3Package)EPackage.Registry.INSTANCE.getEPackage(Configv3Package.eNS_URI);

		// Obtain or create and register package
		Configv3PackageImpl theConfigv3Package = (Configv3PackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof Configv3PackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new Configv3PackageImpl());

		isInited = true;

		// Initialize simple dependencies
		EcorePackage.eINSTANCE.eClass();
		XMLNamespacePackage.eINSTANCE.eClass();
		XMLTypePackage.eINSTANCE.eClass();

		// Create package meta-data objects
		theConfigv3Package.createPackageContents();

		// Initialize created meta-data
		theConfigv3Package.initializePackageContents();

		// Mark meta-data to indicate it can't be changed
		theConfigv3Package.freeze();

  
		// Update the registry and return the package
		EPackage.Registry.INSTANCE.put(Configv3Package.eNS_URI, theConfigv3Package);
		return theConfigv3Package;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getConfigurationType() {
		return configurationTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConfigurationType_Properties() {
		return (EReference)configurationTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConfigurationType_Settings() {
		return (EReference)configurationTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConfigurationType_TypeAliases() {
		return (EReference)configurationTypeEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConfigurationType_TypeHandlers() {
		return (EReference)configurationTypeEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConfigurationType_ObjectFactory() {
		return (EReference)configurationTypeEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConfigurationType_ObjectWrapperFactory() {
		return (EReference)configurationTypeEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConfigurationType_Plugins() {
		return (EReference)configurationTypeEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConfigurationType_Environments() {
		return (EReference)configurationTypeEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConfigurationType_DatabaseIdProvider() {
		return (EReference)configurationTypeEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getConfigurationType_Mappers() {
		return (EReference)configurationTypeEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDatabaseIdProviderType() {
		return databaseIdProviderTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDatabaseIdProviderType_Property() {
		return (EReference)databaseIdProviderTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDatabaseIdProviderType_Type() {
		return (EAttribute)databaseIdProviderTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDataSourceType() {
		return dataSourceTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDataSourceType_Property() {
		return (EReference)dataSourceTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDataSourceType_Type() {
		return (EAttribute)dataSourceTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getDocumentRoot() {
		return documentRootEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getDocumentRoot_Mixed() {
		return (EAttribute)documentRootEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_XMLNSPrefixMap() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_XSISchemaLocation() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Configuration() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(3);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_DatabaseIdProvider() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(4);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_DataSource() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(5);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Environment() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(6);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Environments() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(7);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Mapper() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(8);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Mappers() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(9);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_ObjectFactory() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(10);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_ObjectWrapperFactory() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(11);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Package() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(12);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Plugin() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(13);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Plugins() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(14);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Properties() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(15);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Property() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(16);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Setting() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(17);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_Settings() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(18);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_TransactionManager() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(19);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_TypeAlias() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(20);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_TypeAliases() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(21);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_TypeHandler() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(22);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getDocumentRoot_TypeHandlers() {
		return (EReference)documentRootEClass.getEStructuralFeatures().get(23);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getEnvironmentsType() {
		return environmentsTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEnvironmentsType_Environment() {
		return (EReference)environmentsTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEnvironmentsType_Default() {
		return (EReference)environmentsTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getEnvironmentType() {
		return environmentTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEnvironmentType_TransactionManager() {
		return (EReference)environmentTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getEnvironmentType_DataSource() {
		return (EReference)environmentTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getEnvironmentType_Id() {
		return (EAttribute)environmentTypeEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getMappersType() {
		return mappersTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMappersType_Mapper() {
		return (EReference)mappersTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getMappersType_Package() {
		return (EReference)mappersTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getMapperType() {
		return mapperTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getMapperType_Resource() {
		return (EAttribute)mapperTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getObjectFactoryType() {
		return objectFactoryTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getObjectFactoryType_Property() {
		return (EReference)objectFactoryTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getObjectFactoryType_Type() {
		return (EAttribute)objectFactoryTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getObjectWrapperFactoryType() {
		return objectWrapperFactoryTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getObjectWrapperFactoryType_Property() {
		return (EReference)objectWrapperFactoryTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getObjectWrapperFactoryType_Type() {
		return (EAttribute)objectWrapperFactoryTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPackageType() {
		return packageTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPackageType_Name() {
		return (EAttribute)packageTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPluginsType() {
		return pluginsTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPluginsType_Plugin() {
		return (EReference)pluginsTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPluginType() {
		return pluginTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPluginType_Property() {
		return (EReference)pluginTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPluginType_Interceptor() {
		return (EAttribute)pluginTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPropertiesType() {
		return propertiesTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getPropertiesType_Property() {
		return (EReference)propertiesTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPropertiesType_Resource() {
		return (EAttribute)propertiesTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPropertiesType_Url() {
		return (EAttribute)propertiesTypeEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getPropertyType() {
		return propertyTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPropertyType_Name() {
		return (EAttribute)propertyTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getPropertyType_Value() {
		return (EAttribute)propertyTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSettingsType() {
		return settingsTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getSettingsType_Setting() {
		return (EReference)settingsTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getSettingType() {
		return settingTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingType_Name() {
		return (EAttribute)settingTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getSettingType_Value() {
		return (EAttribute)settingTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTransactionManagerType() {
		return transactionManagerTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getTransactionManagerType_Property() {
		return (EReference)transactionManagerTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTransactionManagerType_Type() {
		return (EAttribute)transactionManagerTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTypeAliasesType() {
		return typeAliasesTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getTypeAliasesType_TypeAlias() {
		return (EReference)typeAliasesTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getTypeAliasesType_Package() {
		return (EReference)typeAliasesTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTypeAliasType() {
		return typeAliasTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTypeAliasType_Alias() {
		return (EAttribute)typeAliasTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTypeAliasType_Type() {
		return (EAttribute)typeAliasTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTypeHandlersType() {
		return typeHandlersTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getTypeHandlersType_TypeHandler() {
		return (EReference)typeHandlersTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EReference getTypeHandlersType_Package() {
		return (EReference)typeHandlersTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EClass getTypeHandlerType() {
		return typeHandlerTypeEClass;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTypeHandlerType_Handler() {
		return (EAttribute)typeHandlerTypeEClass.getEStructuralFeatures().get(0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTypeHandlerType_JavaType() {
		return (EAttribute)typeHandlerTypeEClass.getEStructuralFeatures().get(1);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public EAttribute getTypeHandlerType_JdbcType() {
		return (EAttribute)typeHandlerTypeEClass.getEStructuralFeatures().get(2);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Configv3Factory getConfigv3Factory() {
		return (Configv3Factory)getEFactoryInstance();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isCreated = false;

	/**
	 * Creates the meta-model objects for the package.  This method is
	 * guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void createPackageContents() {
		if (isCreated) return;
		isCreated = true;

		// Create classes and their features
		configurationTypeEClass = createEClass(CONFIGURATION_TYPE);
		createEReference(configurationTypeEClass, CONFIGURATION_TYPE__PROPERTIES);
		createEReference(configurationTypeEClass, CONFIGURATION_TYPE__SETTINGS);
		createEReference(configurationTypeEClass, CONFIGURATION_TYPE__TYPE_ALIASES);
		createEReference(configurationTypeEClass, CONFIGURATION_TYPE__TYPE_HANDLERS);
		createEReference(configurationTypeEClass, CONFIGURATION_TYPE__OBJECT_FACTORY);
		createEReference(configurationTypeEClass, CONFIGURATION_TYPE__OBJECT_WRAPPER_FACTORY);
		createEReference(configurationTypeEClass, CONFIGURATION_TYPE__PLUGINS);
		createEReference(configurationTypeEClass, CONFIGURATION_TYPE__ENVIRONMENTS);
		createEReference(configurationTypeEClass, CONFIGURATION_TYPE__DATABASE_ID_PROVIDER);
		createEReference(configurationTypeEClass, CONFIGURATION_TYPE__MAPPERS);

		databaseIdProviderTypeEClass = createEClass(DATABASE_ID_PROVIDER_TYPE);
		createEReference(databaseIdProviderTypeEClass, DATABASE_ID_PROVIDER_TYPE__PROPERTY);
		createEAttribute(databaseIdProviderTypeEClass, DATABASE_ID_PROVIDER_TYPE__TYPE);

		dataSourceTypeEClass = createEClass(DATA_SOURCE_TYPE);
		createEReference(dataSourceTypeEClass, DATA_SOURCE_TYPE__PROPERTY);
		createEAttribute(dataSourceTypeEClass, DATA_SOURCE_TYPE__TYPE);

		documentRootEClass = createEClass(DOCUMENT_ROOT);
		createEAttribute(documentRootEClass, DOCUMENT_ROOT__MIXED);
		createEReference(documentRootEClass, DOCUMENT_ROOT__XMLNS_PREFIX_MAP);
		createEReference(documentRootEClass, DOCUMENT_ROOT__XSI_SCHEMA_LOCATION);
		createEReference(documentRootEClass, DOCUMENT_ROOT__CONFIGURATION);
		createEReference(documentRootEClass, DOCUMENT_ROOT__DATABASE_ID_PROVIDER);
		createEReference(documentRootEClass, DOCUMENT_ROOT__DATA_SOURCE);
		createEReference(documentRootEClass, DOCUMENT_ROOT__ENVIRONMENT);
		createEReference(documentRootEClass, DOCUMENT_ROOT__ENVIRONMENTS);
		createEReference(documentRootEClass, DOCUMENT_ROOT__MAPPER);
		createEReference(documentRootEClass, DOCUMENT_ROOT__MAPPERS);
		createEReference(documentRootEClass, DOCUMENT_ROOT__OBJECT_FACTORY);
		createEReference(documentRootEClass, DOCUMENT_ROOT__OBJECT_WRAPPER_FACTORY);
		createEReference(documentRootEClass, DOCUMENT_ROOT__PACKAGE);
		createEReference(documentRootEClass, DOCUMENT_ROOT__PLUGIN);
		createEReference(documentRootEClass, DOCUMENT_ROOT__PLUGINS);
		createEReference(documentRootEClass, DOCUMENT_ROOT__PROPERTIES);
		createEReference(documentRootEClass, DOCUMENT_ROOT__PROPERTY);
		createEReference(documentRootEClass, DOCUMENT_ROOT__SETTING);
		createEReference(documentRootEClass, DOCUMENT_ROOT__SETTINGS);
		createEReference(documentRootEClass, DOCUMENT_ROOT__TRANSACTION_MANAGER);
		createEReference(documentRootEClass, DOCUMENT_ROOT__TYPE_ALIAS);
		createEReference(documentRootEClass, DOCUMENT_ROOT__TYPE_ALIASES);
		createEReference(documentRootEClass, DOCUMENT_ROOT__TYPE_HANDLER);
		createEReference(documentRootEClass, DOCUMENT_ROOT__TYPE_HANDLERS);

		environmentsTypeEClass = createEClass(ENVIRONMENTS_TYPE);
		createEReference(environmentsTypeEClass, ENVIRONMENTS_TYPE__ENVIRONMENT);
		createEReference(environmentsTypeEClass, ENVIRONMENTS_TYPE__DEFAULT);

		environmentTypeEClass = createEClass(ENVIRONMENT_TYPE);
		createEReference(environmentTypeEClass, ENVIRONMENT_TYPE__TRANSACTION_MANAGER);
		createEReference(environmentTypeEClass, ENVIRONMENT_TYPE__DATA_SOURCE);
		createEAttribute(environmentTypeEClass, ENVIRONMENT_TYPE__ID);

		mappersTypeEClass = createEClass(MAPPERS_TYPE);
		createEReference(mappersTypeEClass, MAPPERS_TYPE__MAPPER);
		createEReference(mappersTypeEClass, MAPPERS_TYPE__PACKAGE);

		mapperTypeEClass = createEClass(MAPPER_TYPE);
		createEAttribute(mapperTypeEClass, MAPPER_TYPE__RESOURCE);

		objectFactoryTypeEClass = createEClass(OBJECT_FACTORY_TYPE);
		createEReference(objectFactoryTypeEClass, OBJECT_FACTORY_TYPE__PROPERTY);
		createEAttribute(objectFactoryTypeEClass, OBJECT_FACTORY_TYPE__TYPE);

		objectWrapperFactoryTypeEClass = createEClass(OBJECT_WRAPPER_FACTORY_TYPE);
		createEReference(objectWrapperFactoryTypeEClass, OBJECT_WRAPPER_FACTORY_TYPE__PROPERTY);
		createEAttribute(objectWrapperFactoryTypeEClass, OBJECT_WRAPPER_FACTORY_TYPE__TYPE);

		packageTypeEClass = createEClass(PACKAGE_TYPE);
		createEAttribute(packageTypeEClass, PACKAGE_TYPE__NAME);

		pluginsTypeEClass = createEClass(PLUGINS_TYPE);
		createEReference(pluginsTypeEClass, PLUGINS_TYPE__PLUGIN);

		pluginTypeEClass = createEClass(PLUGIN_TYPE);
		createEReference(pluginTypeEClass, PLUGIN_TYPE__PROPERTY);
		createEAttribute(pluginTypeEClass, PLUGIN_TYPE__INTERCEPTOR);

		propertiesTypeEClass = createEClass(PROPERTIES_TYPE);
		createEReference(propertiesTypeEClass, PROPERTIES_TYPE__PROPERTY);
		createEAttribute(propertiesTypeEClass, PROPERTIES_TYPE__RESOURCE);
		createEAttribute(propertiesTypeEClass, PROPERTIES_TYPE__URL);

		propertyTypeEClass = createEClass(PROPERTY_TYPE);
		createEAttribute(propertyTypeEClass, PROPERTY_TYPE__NAME);
		createEAttribute(propertyTypeEClass, PROPERTY_TYPE__VALUE);

		settingsTypeEClass = createEClass(SETTINGS_TYPE);
		createEReference(settingsTypeEClass, SETTINGS_TYPE__SETTING);

		settingTypeEClass = createEClass(SETTING_TYPE);
		createEAttribute(settingTypeEClass, SETTING_TYPE__NAME);
		createEAttribute(settingTypeEClass, SETTING_TYPE__VALUE);

		transactionManagerTypeEClass = createEClass(TRANSACTION_MANAGER_TYPE);
		createEReference(transactionManagerTypeEClass, TRANSACTION_MANAGER_TYPE__PROPERTY);
		createEAttribute(transactionManagerTypeEClass, TRANSACTION_MANAGER_TYPE__TYPE);

		typeAliasesTypeEClass = createEClass(TYPE_ALIASES_TYPE);
		createEReference(typeAliasesTypeEClass, TYPE_ALIASES_TYPE__TYPE_ALIAS);
		createEReference(typeAliasesTypeEClass, TYPE_ALIASES_TYPE__PACKAGE);

		typeAliasTypeEClass = createEClass(TYPE_ALIAS_TYPE);
		createEAttribute(typeAliasTypeEClass, TYPE_ALIAS_TYPE__ALIAS);
		createEAttribute(typeAliasTypeEClass, TYPE_ALIAS_TYPE__TYPE);

		typeHandlersTypeEClass = createEClass(TYPE_HANDLERS_TYPE);
		createEReference(typeHandlersTypeEClass, TYPE_HANDLERS_TYPE__TYPE_HANDLER);
		createEReference(typeHandlersTypeEClass, TYPE_HANDLERS_TYPE__PACKAGE);

		typeHandlerTypeEClass = createEClass(TYPE_HANDLER_TYPE);
		createEAttribute(typeHandlerTypeEClass, TYPE_HANDLER_TYPE__HANDLER);
		createEAttribute(typeHandlerTypeEClass, TYPE_HANDLER_TYPE__JAVA_TYPE);
		createEAttribute(typeHandlerTypeEClass, TYPE_HANDLER_TYPE__JDBC_TYPE);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private boolean isInitialized = false;

	/**
	 * Complete the initialization of the package and its meta-model.  This
	 * method is guarded to have no affect on any invocation but its first.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void initializePackageContents() {
		if (isInitialized) return;
		isInitialized = true;

		// Initialize package
		setName(eNAME);
		setNsPrefix(eNS_PREFIX);
		setNsURI(eNS_URI);

		// Obtain other dependent packages
		XMLTypePackage theXMLTypePackage = (XMLTypePackage)EPackage.Registry.INSTANCE.getEPackage(XMLTypePackage.eNS_URI);

		// Create type parameters

		// Set bounds for type parameters

		// Add supertypes to classes

		// Initialize classes and features; add operations and parameters
		initEClass(configurationTypeEClass, ConfigurationType.class, "ConfigurationType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getConfigurationType_Properties(), this.getPropertiesType(), null, "properties", null, 0, 1, ConfigurationType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getConfigurationType_Settings(), this.getSettingsType(), null, "settings", null, 0, 1, ConfigurationType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getConfigurationType_TypeAliases(), this.getTypeAliasesType(), null, "typeAliases", null, 0, 1, ConfigurationType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getConfigurationType_TypeHandlers(), this.getTypeHandlersType(), null, "typeHandlers", null, 0, 1, ConfigurationType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getConfigurationType_ObjectFactory(), this.getObjectFactoryType(), null, "objectFactory", null, 0, 1, ConfigurationType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getConfigurationType_ObjectWrapperFactory(), this.getObjectWrapperFactoryType(), null, "objectWrapperFactory", null, 0, 1, ConfigurationType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getConfigurationType_Plugins(), this.getPluginsType(), null, "plugins", null, 0, 1, ConfigurationType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getConfigurationType_Environments(), this.getEnvironmentsType(), null, "environments", null, 0, 1, ConfigurationType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getConfigurationType_DatabaseIdProvider(), this.getDatabaseIdProviderType(), null, "databaseIdProvider", null, 0, 1, ConfigurationType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getConfigurationType_Mappers(), this.getMappersType(), null, "mappers", null, 0, 1, ConfigurationType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(databaseIdProviderTypeEClass, DatabaseIdProviderType.class, "DatabaseIdProviderType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getDatabaseIdProviderType_Property(), this.getPropertyType(), null, "property", null, 0, -1, DatabaseIdProviderType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDatabaseIdProviderType_Type(), theXMLTypePackage.getAnySimpleType(), "type", null, 1, 1, DatabaseIdProviderType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(dataSourceTypeEClass, DataSourceType.class, "DataSourceType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getDataSourceType_Property(), this.getPropertyType(), null, "property", null, 0, -1, DataSourceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getDataSourceType_Type(), theXMLTypePackage.getString(), "type", null, 1, 1, DataSourceType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(documentRootEClass, DocumentRoot.class, "DocumentRoot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getDocumentRoot_Mixed(), ecorePackage.getEFeatureMapEntry(), "mixed", null, 0, -1, null, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_XMLNSPrefixMap(), ecorePackage.getEStringToStringMapEntry(), null, "xMLNSPrefixMap", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_XSISchemaLocation(), ecorePackage.getEStringToStringMapEntry(), null, "xSISchemaLocation", null, 0, -1, null, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Configuration(), this.getConfigurationType(), null, "configuration", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_DatabaseIdProvider(), this.getDatabaseIdProviderType(), null, "databaseIdProvider", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_DataSource(), this.getDataSourceType(), null, "dataSource", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Environment(), this.getEnvironmentType(), null, "environment", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Environments(), this.getEnvironmentsType(), null, "environments", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Mapper(), this.getMapperType(), null, "mapper", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Mappers(), this.getMappersType(), null, "mappers", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_ObjectFactory(), this.getObjectFactoryType(), null, "objectFactory", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_ObjectWrapperFactory(), this.getObjectWrapperFactoryType(), null, "objectWrapperFactory", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Package(), this.getPackageType(), null, "package", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Plugin(), this.getPluginType(), null, "plugin", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Plugins(), this.getPluginsType(), null, "plugins", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Properties(), this.getPropertiesType(), null, "properties", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Property(), this.getPropertyType(), null, "property", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Setting(), this.getSettingType(), null, "setting", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_Settings(), this.getSettingsType(), null, "settings", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_TransactionManager(), this.getTransactionManagerType(), null, "transactionManager", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_TypeAlias(), this.getTypeAliasType(), null, "typeAlias", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_TypeAliases(), this.getTypeAliasesType(), null, "typeAliases", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_TypeHandler(), this.getTypeHandlerType(), null, "typeHandler", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
		initEReference(getDocumentRoot_TypeHandlers(), this.getTypeHandlersType(), null, "typeHandlers", null, 0, -2, null, IS_TRANSIENT, IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, IS_DERIVED, IS_ORDERED);

		initEClass(environmentsTypeEClass, EnvironmentsType.class, "EnvironmentsType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getEnvironmentsType_Environment(), this.getEnvironmentType(), null, "environment", null, 1, -1, EnvironmentsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getEnvironmentsType_Default(), ecorePackage.getEObject(), null, "default", null, 1, 1, EnvironmentsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(environmentTypeEClass, EnvironmentType.class, "EnvironmentType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getEnvironmentType_TransactionManager(), this.getTransactionManagerType(), null, "transactionManager", null, 1, 1, EnvironmentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getEnvironmentType_DataSource(), this.getDataSourceType(), null, "dataSource", null, 1, 1, EnvironmentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getEnvironmentType_Id(), theXMLTypePackage.getID(), "id", null, 1, 1, EnvironmentType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(mappersTypeEClass, MappersType.class, "MappersType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getMappersType_Mapper(), this.getMapperType(), null, "mapper", null, 0, -1, MappersType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getMappersType_Package(), this.getPackageType(), null, "package", null, 0, -1, MappersType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(mapperTypeEClass, MapperType.class, "MapperType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getMapperType_Resource(), theXMLTypePackage.getString(), "resource", null, 0, 1, MapperType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(objectFactoryTypeEClass, ObjectFactoryType.class, "ObjectFactoryType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getObjectFactoryType_Property(), this.getPropertyType(), null, "property", null, 0, -1, ObjectFactoryType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getObjectFactoryType_Type(), theXMLTypePackage.getString(), "type", null, 1, 1, ObjectFactoryType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(objectWrapperFactoryTypeEClass, ObjectWrapperFactoryType.class, "ObjectWrapperFactoryType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getObjectWrapperFactoryType_Property(), this.getPropertyType(), null, "property", null, 0, -1, ObjectWrapperFactoryType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getObjectWrapperFactoryType_Type(), theXMLTypePackage.getAnySimpleType(), "type", null, 1, 1, ObjectWrapperFactoryType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(packageTypeEClass, PackageType.class, "PackageType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getPackageType_Name(), theXMLTypePackage.getString(), "name", null, 1, 1, PackageType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(pluginsTypeEClass, PluginsType.class, "PluginsType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getPluginsType_Plugin(), this.getPluginType(), null, "plugin", null, 1, -1, PluginsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(pluginTypeEClass, PluginType.class, "PluginType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getPluginType_Property(), this.getPropertyType(), null, "property", null, 0, -1, PluginType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getPluginType_Interceptor(), theXMLTypePackage.getString(), "interceptor", null, 1, 1, PluginType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(propertiesTypeEClass, PropertiesType.class, "PropertiesType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getPropertiesType_Property(), this.getPropertyType(), null, "property", null, 0, -1, PropertiesType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getPropertiesType_Resource(), theXMLTypePackage.getAnySimpleType(), "resource", null, 0, 1, PropertiesType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getPropertiesType_Url(), theXMLTypePackage.getAnySimpleType(), "url", null, 0, 1, PropertiesType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(propertyTypeEClass, PropertyType.class, "PropertyType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getPropertyType_Name(), theXMLTypePackage.getAnySimpleType(), "name", null, 1, 1, PropertyType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getPropertyType_Value(), theXMLTypePackage.getString(), "value", null, 1, 1, PropertyType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(settingsTypeEClass, SettingsType.class, "SettingsType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getSettingsType_Setting(), this.getSettingType(), null, "setting", null, 1, -1, SettingsType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(settingTypeEClass, SettingType.class, "SettingType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getSettingType_Name(), theXMLTypePackage.getString(), "name", null, 1, 1, SettingType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getSettingType_Value(), theXMLTypePackage.getAnySimpleType(), "value", null, 1, 1, SettingType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(transactionManagerTypeEClass, TransactionManagerType.class, "TransactionManagerType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getTransactionManagerType_Property(), this.getPropertyType(), null, "property", null, 0, -1, TransactionManagerType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getTransactionManagerType_Type(), theXMLTypePackage.getString(), "type", null, 1, 1, TransactionManagerType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(typeAliasesTypeEClass, TypeAliasesType.class, "TypeAliasesType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getTypeAliasesType_TypeAlias(), this.getTypeAliasType(), null, "typeAlias", null, 0, -1, TypeAliasesType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getTypeAliasesType_Package(), this.getPackageType(), null, "package", null, 0, -1, TypeAliasesType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(typeAliasTypeEClass, TypeAliasType.class, "TypeAliasType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getTypeAliasType_Alias(), theXMLTypePackage.getString(), "alias", null, 0, 1, TypeAliasType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getTypeAliasType_Type(), theXMLTypePackage.getString(), "type", null, 1, 1, TypeAliasType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(typeHandlersTypeEClass, TypeHandlersType.class, "TypeHandlersType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEReference(getTypeHandlersType_TypeHandler(), this.getTypeHandlerType(), null, "typeHandler", null, 0, -1, TypeHandlersType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEReference(getTypeHandlersType_Package(), this.getPackageType(), null, "package", null, 0, -1, TypeHandlersType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		initEClass(typeHandlerTypeEClass, TypeHandlerType.class, "TypeHandlerType", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
		initEAttribute(getTypeHandlerType_Handler(), theXMLTypePackage.getString(), "handler", null, 1, 1, TypeHandlerType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getTypeHandlerType_JavaType(), theXMLTypePackage.getString(), "javaType", null, 0, 1, TypeHandlerType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
		initEAttribute(getTypeHandlerType_JdbcType(), theXMLTypePackage.getString(), "jdbcType", null, 0, 1, TypeHandlerType.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);

		// Create resource
		createResource(eNS_URI);

		// Create annotations
		// http:///org/eclipse/emf/ecore/util/ExtendedMetaData
		createExtendedMetaDataAnnotations();
	}

	/**
	 * Initializes the annotations for <b>http:///org/eclipse/emf/ecore/util/ExtendedMetaData</b>.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected void createExtendedMetaDataAnnotations() {
		String source = "http:///org/eclipse/emf/ecore/util/ExtendedMetaData";			
		addAnnotation
		  (this, 
		   source, 
		   new String[] {
			 "qualified", "false"
		   });		
		addAnnotation
		  (configurationTypeEClass, 
		   source, 
		   new String[] {
			 "name", "configuration_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getConfigurationType_Properties(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "properties",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getConfigurationType_Settings(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "settings",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getConfigurationType_TypeAliases(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "typeAliases",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getConfigurationType_TypeHandlers(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "typeHandlers",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getConfigurationType_ObjectFactory(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "objectFactory",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getConfigurationType_ObjectWrapperFactory(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "objectWrapperFactory",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getConfigurationType_Plugins(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "plugins",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getConfigurationType_Environments(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "environments",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getConfigurationType_DatabaseIdProvider(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "databaseIdProvider",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getConfigurationType_Mappers(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "mappers",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (databaseIdProviderTypeEClass, 
		   source, 
		   new String[] {
			 "name", "databaseIdProvider_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getDatabaseIdProviderType_Property(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDatabaseIdProviderType_Type(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "type",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (dataSourceTypeEClass, 
		   source, 
		   new String[] {
			 "name", "dataSource_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getDataSourceType_Property(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDataSourceType_Type(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "type",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (documentRootEClass, 
		   source, 
		   new String[] {
			 "name", "",
			 "kind", "mixed"
		   });		
		addAnnotation
		  (getDocumentRoot_Mixed(), 
		   source, 
		   new String[] {
			 "kind", "elementWildcard",
			 "name", ":mixed"
		   });		
		addAnnotation
		  (getDocumentRoot_XMLNSPrefixMap(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "xmlns:prefix"
		   });		
		addAnnotation
		  (getDocumentRoot_XSISchemaLocation(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "xsi:schemaLocation"
		   });		
		addAnnotation
		  (getDocumentRoot_Configuration(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "configuration",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_DatabaseIdProvider(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "databaseIdProvider",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_DataSource(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "dataSource",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Environment(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "environment",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Environments(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "environments",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Mapper(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "mapper",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Mappers(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "mappers",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_ObjectFactory(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "objectFactory",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_ObjectWrapperFactory(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "objectWrapperFactory",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Package(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "package",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Plugin(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "plugin",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Plugins(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "plugins",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Properties(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "properties",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Property(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Setting(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "setting",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_Settings(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "settings",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_TransactionManager(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "transactionManager",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_TypeAlias(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "typeAlias",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_TypeAliases(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "typeAliases",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_TypeHandler(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "typeHandler",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getDocumentRoot_TypeHandlers(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "typeHandlers",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (environmentsTypeEClass, 
		   source, 
		   new String[] {
			 "name", "environments_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getEnvironmentsType_Environment(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "environment",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getEnvironmentsType_Default(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "default",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (environmentTypeEClass, 
		   source, 
		   new String[] {
			 "name", "environment_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getEnvironmentType_TransactionManager(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "transactionManager",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getEnvironmentType_DataSource(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "dataSource",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getEnvironmentType_Id(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "id",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (mappersTypeEClass, 
		   source, 
		   new String[] {
			 "name", "mappers_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getMappersType_Mapper(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "mapper",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getMappersType_Package(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "package",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (mapperTypeEClass, 
		   source, 
		   new String[] {
			 "name", "mapper_._type",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getMapperType_Resource(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "resource",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (objectFactoryTypeEClass, 
		   source, 
		   new String[] {
			 "name", "objectFactory_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getObjectFactoryType_Property(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getObjectFactoryType_Type(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "type",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (objectWrapperFactoryTypeEClass, 
		   source, 
		   new String[] {
			 "name", "objectWrapperFactory_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getObjectWrapperFactoryType_Property(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getObjectWrapperFactoryType_Type(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "type",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (packageTypeEClass, 
		   source, 
		   new String[] {
			 "name", "package_._type",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getPackageType_Name(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "name",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (pluginsTypeEClass, 
		   source, 
		   new String[] {
			 "name", "plugins_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getPluginsType_Plugin(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "plugin",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (pluginTypeEClass, 
		   source, 
		   new String[] {
			 "name", "plugin_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getPluginType_Property(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getPluginType_Interceptor(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "interceptor",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (propertiesTypeEClass, 
		   source, 
		   new String[] {
			 "name", "properties_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getPropertiesType_Property(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getPropertiesType_Resource(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "resource",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getPropertiesType_Url(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "url",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (propertyTypeEClass, 
		   source, 
		   new String[] {
			 "name", "property_._type",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getPropertyType_Name(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "name",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getPropertyType_Value(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "value",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (settingsTypeEClass, 
		   source, 
		   new String[] {
			 "name", "settings_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getSettingsType_Setting(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "setting",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (settingTypeEClass, 
		   source, 
		   new String[] {
			 "name", "setting_._type",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getSettingType_Name(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "name",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getSettingType_Value(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "value",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (transactionManagerTypeEClass, 
		   source, 
		   new String[] {
			 "name", "transactionManager_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getTransactionManagerType_Property(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "property",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTransactionManagerType_Type(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "type",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (typeAliasesTypeEClass, 
		   source, 
		   new String[] {
			 "name", "typeAliases_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getTypeAliasesType_TypeAlias(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "typeAlias",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTypeAliasesType_Package(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "package",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (typeAliasTypeEClass, 
		   source, 
		   new String[] {
			 "name", "typeAlias_._type",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getTypeAliasType_Alias(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "alias",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTypeAliasType_Type(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "type",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (typeHandlersTypeEClass, 
		   source, 
		   new String[] {
			 "name", "typeHandlers_._type",
			 "kind", "elementOnly"
		   });		
		addAnnotation
		  (getTypeHandlersType_TypeHandler(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "typeHandler",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTypeHandlersType_Package(), 
		   source, 
		   new String[] {
			 "kind", "element",
			 "name", "package",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (typeHandlerTypeEClass, 
		   source, 
		   new String[] {
			 "name", "typeHandler_._type",
			 "kind", "empty"
		   });		
		addAnnotation
		  (getTypeHandlerType_Handler(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "handler",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTypeHandlerType_JavaType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "javaType",
			 "namespace", "##targetNamespace"
		   });		
		addAnnotation
		  (getTypeHandlerType_JdbcType(), 
		   source, 
		   new String[] {
			 "kind", "attribute",
			 "name", "jdbcType",
			 "namespace", "##targetNamespace"
		   });
	}

} //Configv3PackageImpl
